package com.ruoyi.mobile.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.mobile.domain.MaterialInfoEntity;
import com.ruoyi.mobile.utils.NftResponse;
import com.ruoyi.mobile.utils.Paginator;
import com.ruoyi.system.api.req.*;
import com.ruoyi.system.api.resp.*;

import java.util.List;

public interface MaterialService extends IService<MaterialInfoEntity> {
    public NftResponse<List<DictResp>> getGrades();
    public NftResponse<List<DictResp>> getSubjects();
    public NftResponse<List<DictResp>> getSemesters();
    public NftResponse<List<Integer>> getAges();
    public NftResponse<Paginator<MaterialInfoResp>> getMaterialList(MaterialInfoReq query);
    public NftResponse<Paginator<MaterialOrderResp>> getOrderList(MaterialOrderReq query);
    public NftResponse<Paginator<MaterialDownResp>> getDownList(MaterialDownReq query);
    public NftResponse<Paginator<MaterialViewResp>> getViewList(MaterialViewReq query);
    public NftResponse<Paginator<MaterialCollectResp>> getCollectList(MaterialCollectReq query);
    public NftResponse<MaterialInfoResp> getMaterialInfo(Long id, Long userId);
    public NftResponse<JSONObject> insertOrderInfo(MaterialOrderReq query);
    public NftResponse<Boolean> insertDownInfo(MaterialDownReq query);
    public NftResponse<JSONObject> insertCollectInfo(MaterialCollectReq query);
    public NftResponse<JSONObject> insertViewInfo(MaterialViewReq query);
    public NftResponse<Boolean> delOrderzl(Long id);
    public NftResponse<Boolean> delDownzl(Long id);
    public NftResponse<Boolean> delCollectzl(Long id);
    public NftResponse<Boolean> delViewzl(Long id);
}
